a tool for shared writing and social publishing
at update/delete-leaflets 78 lines 2.3 kB view raw
1import { z } from "zod"; 2import { makeRoute } from "../lib"; 3import type { Env } from "./route"; 4import { NextApiResponse } from "next"; 5 6export const get_domain_status = makeRoute({ 7 route: "get_domain_status", 8 input: z.object({ 9 domain: z.string(), 10 }), 11 handler: async ({ domain }, { vercel }: Pick<Env, "vercel">) => { 12 try { 13 let [status, config] = await Promise.all([ 14 vercel.domains.getDomain({ 15 domain, 16 teamId: "team_42xaJiZMTw9Sr7i0DcLTae9d", 17 }), 18 vercel.domains.getDomainConfig({ 19 domain, 20 teamId: "team_42xaJiZMTw9Sr7i0DcLTae9d", 21 }), 22 ]); 23 return { config }; 24 } catch (e) { 25 let errorResponse = e as NextApiResponse; 26 if (errorResponse.statusCode === 403) { 27 try { 28 let [verification, config] = await Promise.all([ 29 vercel.projects.getProjectDomain({ 30 idOrName: "prj_9jX4tmYCISnm176frFxk07fF74kG", 31 teamId: "team_42xaJiZMTw9Sr7i0DcLTae9d", 32 domain, 33 }), 34 vercel.domains.getDomainConfig({ 35 domain, 36 teamId: "team_42xaJiZMTw9Sr7i0DcLTae9d", 37 }), 38 ]); 39 if (!verification.verification) { 40 return { config }; 41 } 42 return { 43 verification: verification.verification, 44 config, 45 } as const; 46 } catch (e) { 47 return { error: true }; 48 } 49 } 50 if (errorResponse.statusCode === 404) 51 return { error: "Not Found" } as const; 52 return { error: true }; 53 } 54 }, 55}); 56 57export const get_leaflet_subdomain_status = makeRoute({ 58 route: "get_leaflet_subdomain_status", 59 input: z.object({ 60 domain: z.string(), 61 }), 62 handler: async ({ domain }, { vercel }: Pick<Env, "vercel">) => { 63 try { 64 let c = await vercel.projects.getProjectDomain({ 65 idOrName: "prj_9jX4tmYCISnm176frFxk07fF74kG", 66 teamId: "team_42xaJiZMTw9Sr7i0DcLTae9d", 67 domain: `${domain}.leaflet.pub`, 68 }); 69 return { config: c }; 70 } catch (e) { 71 console.log(e); 72 let errorResponse = e as NextApiResponse; 73 if (errorResponse.statusCode === 404) 74 return { error: "Not Found" } as const; 75 return { error: true }; 76 } 77 }, 78});